import { createStore } from 'redux'

const  storeDict:object = {}
// 定义一个纯函数 接受初始值和action 返回更新后的值
const reducer = function (state = {}, action:object) {
    storeDict[action["type"]] = action["value"]
      return storeDict
  
}
// store  状态仓库
// - getState 获取当前状态
// - dispatch 发起一个 action,唯⼀改变 state 的⽅法就是触发 action
// - subscribe 监听state发生改变,返回的是一个取消监听的函数。
// - replaceReducer 替换掉reducer，传入新的reducer函数。
// action：对状态的修改动作，action 本身是一个普通对象，该对象有 type 属性 和 payload 属性
// - type 属性是对 state 做出何种修改的描述
// - payload 附带参数 
export const store = createStore(reducer)

// store.subscribe(() => {
//   console.log('subscribe', store.getState());
// });

// store.dispatch({ type: 'count-add' })
// store.dispatch({ type: 'nub-add', payload: 2 })
// console.log(store.getState());
// unsubscribe();
// store.dispatch({ type: 'count-add' })
